'''方法2：通过建立一个方法来修改属性的值(有时候需要直接访问属性，但其他时候需要编写对属性进行更新的方法)'''
class Car():
    '''初始化方法：描述汽车的属性'''
    def __init__(self,brand,model,year):#这里不需要包含形参odemeter
        self.brand = brand
        self.model = model
        self.year = year
        self.odemeter = 0      # 在__init__()方法下定义的属性且设置了默认值，就无需在init()后面包含为它提供初始值的形参

    '''实例方法：返回整洁的描述性信息'''
    def get_descriptive_name(self):
        long_name=self.brand+' '+self.model+' '+str(self.year)
        return long_name.title()
    '''实例方法：用于打印读取的汽车行驶公里数'''
    def read_odemeter(self):
        print('This car has '+str(self.odemeter)+' miles on it')
    def update_odemeter(self,mileage):  #需要添加参数：更新的公里数mileage
        if mileage>=self.odemeter:
            self.odemeter = mileage
        else:
            print("You can't roll back an odemeter!")

my_used_car=Car('Haval','H5',2016)
print('-----------------------------------------------')
print('my used car is '+ my_used_car.get_descriptive_name())
my_used_car.update_odemeter(20000)
my_used_car.read_odemeter()      #不要多加一个print,否则运行结果后面会出现一个None

